package engine.data
{
	import engine.net.datatype.ByteArrayEx;
	
	import flash.events.IEventDispatcher;
	
	import newx.BaseObject;
		
	public class GamePlayer extends BaseObject
	{
		public var		nIsFree:uint		= 0;	// 是否免费
		public var		nPoints:uint		= 0;	// 剩余点数
		public var		nYear:uint			= 0;	// 包月截止日期
		public var		nMonth:uint			= 0;	// 
		public var		nDay:uint			= 0;	// 
		public var		nHour:uint			= 0;	// 			
		public var		nMinu0te:uint		= 0;	// 
		public var		nSecond:uint		= 0;	// 
		public var		nDynamicKey:uint	= 0;	// 动态密匙
		public var		nRoles:uint			= 0;	// 角色数
				
		public var		nArgNum:uint		= 0;	// 第一个角色的参数数量
		public var		nType0:uint			= 0;	// 
		public var		nSysFlags:uint		= 0;	// 角色的系统标志
		public var		nType1:uint			= 0;	// 
		public var		wsName:String		= new String();	// 角色名称
		public var		nType2:uint			= 0;	// 
		public var		wsData:String		= new String();// 角色数据
		public var		nType3:uint			= 0;	// 
		public var		wsLastSever:String	= new String();// 上次豋入的服务器名称
		public var		nType4:uint			= 0;	// 
		public var		nStatus:uint		= 0;	// 角色的当前状态（0：正常状态，1：删除保护状态，2：确认删除状态）
		public var 	sAccount:String		=	"";
		
		
		public	static	const 	LoginType_Fail:uint			=	0;		//登录失败
		public	static	const 	LoginType_NoRole:uint		=	1;		//登录成功，无角色
		public	static	const 	LoginType_NotLoginRole:uint	=	2;		//登录成功，有角色，没登录角色
		public	static	const 	LoginType_LoginRole:uint	=	3;		//玩家在线，重新登录
		
		public function GamePlayer(target:IEventDispatcher=null)
		{
			super(target);
		}
		
		public	function	LoginSucceed(msg:ByteArrayEx):uint
		{		
			nIsFree		= msg.readInt()	;	// 是否免费
			nPoints		= msg.readInt()	;	// 剩余点数
			nYear		= msg.readInt()	;	// 包月截止日期
			nMonth		= msg.readInt()	;	// 
			nDay		= msg.readInt()	;	// 
			nHour		= msg.readInt()	;	// 			
			nMinu0te	= msg.readInt()	;	// 
			nSecond		= msg.readInt()	;	// 
			nDynamicKey	= msg.readInt()	;	// 动态密匙
			nRoles		= msg.readInt()	;	// 角色数
			nArgNum		= msg.readUnsignedShort();	// 第一个角色的参数数量
			
			
			var type:int;	
			var i:uint			= 0;
			for(i = 0; i < nArgNum; i++)
			{
				type		=	msg.readByte();
				switch(i)
				{
					case 0:
						nSysFlags	= msg.GetDataByType(type);
						break;
					case 1:
						wsName		= msg.GetDataByType(type);
						break;
					case 2:
						wsData		= msg.GetDataByType(type);
						break;
					case 3:
						wsLastSever	= msg.GetDataByType(type);
						break;
					case 4:
						nStatus		= msg.GetDataByType(type);
						break;
					
				}
			}
//			nArgNum		= msg.readUnsignedShort();	// 第一个角色的参数数量
//			nType0		= msg.readByte();	// 
//			nSysFlags	= msg.readInt()	;	// 角色的系统标志
//			nType1		= msg.readByte();	// 
//			wsName		= msg.readWString()	// 角色名称
//			nType2		= msg.readByte();	// 
//			wsData		= msg.readWString();// 角色数据
//			nType3		= msg.readByte();	// 
//			wsLastSever	= msg.readWString();// 上次豋入的服务器名称
//			nType4		= msg.readByte();	// 
//			nStatus		= msg.readInt()	;	// 角色的当前状态（0：正常状态，1：删除保护状态，2：确认删除状态）
			
			var		flag:uint	=	LoginType_NoRole;
			if (wsName.length > 0)
			{
				flag = LoginType_NotLoginRole;
			}
			
			msg	=	null;
			
			return flag;
		}		
	}
}